---
id: 6569beee367427c90c74899e
title: Крок 29
challengeType: 20
dashedName: step-29
---

# --description--

Настав час протестувати функцію `merge_sort`!

Замініть `pass` на список під назвою `numbers` та призначте до нього список `[4, 10, 6, 14, 2, 1, 8, 5]`.

# --hints--

Замініть `pass` на список `numbers` з такими значеннями: `[4, 10, 6, 14, 2, 1, 8, 5]`.

```js
({ test: () =>  assert.equal(__userGlobals.get("numbers"), "[4, 10, 6, 14, 2, 1, 8, 5]") })
```

Тіло інструкції `if` не повинне містити ключове слово `pass`.

```js
({ test: () =>  assert(runPython(`
    _Node(_code).find_ifs()[0].find_body().is_equivalent("numbers = [4, 10, 6, 14, 2, 1, 8, 5]")
`)) })
```

# --seed--

## --seed-contents--

```py
def merge_sort(array):
    if len(array) <= 1:
        return

    middle_point = len(array) // 2
    left_part = array[:middle_point]
    right_part = array[middle_point:]

    merge_sort(left_part)
    merge_sort(right_part)

    left_array_index = 0
    right_array_index = 0
    sorted_index = 0

    while left_array_index < len(left_part) and right_array_index < len(right_part):
        if left_part[left_array_index] < right_part[right_array_index]:
            array[sorted_index] = left_part[left_array_index]
            left_array_index += 1
        else:
            array[sorted_index] = right_part[right_array_index]
            right_array_index += 1
        sorted_index += 1

    while left_array_index < len(left_part):
        array[sorted_index] = left_part[left_array_index]
        left_array_index += 1
        sorted_index += 1

    while right_array_index < len(right_part):
        array[sorted_index] = right_part[right_array_index]
        right_array_index += 1
        sorted_index += 1

--fcc-editable-region--
if __name__ == '__main__':
    pass
--fcc-editable-region--
```
